package com.nightsoul.java8.test.typeguess;

public class Value<T> {

	public static <T> T defaultValue() {
		return null;
	}

	public T getOrDefault(T value, T defaultValue) {
		return (value != null) ? value : defaultValue;
	}

	public static void main(String[] args) {
		final Value<String> value = new Value<>();
		//Value.defaultValue()的参数类型可以被推测出，所以就不必明确给出。
		//在Java 7中，相同的例子将不会通过编译，正确的书写方式是 Value.< String >defaultValue()。
		value.getOrDefault("22", Value.defaultValue());
	}
}
